#!/usr/bin/env python
# encoding: utf-8
# Useful functions
#os 模块属性
#linesep 用于在文件中分隔行的字符串
#sep 用来分隔文件路径名的字符串
#pathsep 用于分隔文件路径的字符串
#curdir 当前工作目录的字符串名称
#pardir (当前工作目录的)父目录字符串名称

#os 模块的文件/目录访问函数

#文件处理
#mkfifo()/mknod() 创建命名管道/创建文件系统节点
#remove()/unlink() 删除文件   os.remove()函数用来删除一个文件。
#rename()/renames() 重命名文件  
#*stat() 返回文件信息(包含stat(), lstat(), xstat())
#symlink() 创建符号链接
#utime() 更新时间戳
#tmpfile() 创建并打开('w+b')一个新的临时文件
#walk() 生成一个目录树下的所有文件名

#目录/文件夹
#chdir()/fchdir() 改变当前工作目录/通过一个文件描述符改变当前工作目录
#chroot() 改变当前进程的根目录
#listdir() 列出指定目录的文件   返回指定目录下的所有文件和目录名。 os.listdir(dirname)：列出dirname下的目录和文件
#getcwd()/getcwdu() 返回当前工作目录/功能相同, 但返回一个 Unicode 对象  os.getcwd()函数得到当前工作目录，即当前Python脚本工作的目录路径。
#mkdir()/makedirs() 创建目录/创建多层目录
#rmdir()/removedirs() 删除目录/删除多层目录

#访问/权限
#access() 检验权限模式
#chmod() 改变权限模式
#chown()/lchown() 改变 owner 和 group ID/功能相同, 但不会跟踪链接
#umask() 设置默认权限模式

#文件描述符操作
#open() 底层的操作系统 open (对于文件, 使用标准的内建 open() 函数)
#read()/write() 根据文件描述符读取/写入数据
#dup()/dup2() 复制文件描述符号/功能相同, 但是是复制到另一个文件描述符

#设备号
#makedev() 从 major 和 minor 设备号创建一个原始设备号
#major()/minor() 从原始设备号获得 major/minor 设备号

#os.path 模块中的路径名访问函数

#分隔
#basename() 去掉目录路径, 返回文件名
#dirname() 去掉文件名, 返回目录路径
#join() 将分离的各部分组合成一个路径名
#split() 返回 (dirname(), basename()) 元组
#splitdrive() 返回 (drivename, pathname) 元组
#splitext() 返回 (filename, extension) 元组

#信息
#getatime() 返回最近访问时间
#getctime() 返回文件创建时间
#getmtime() 返回最近文件修改时间
#getsize() 返回文件大小(以字节为单位)

#查询
#exists() 指定路径(文件或目录)是否存在
#isabs() 指定路径是否为绝对路径
#isdir() 指定路径是否存在且为一个目录
#isfile() 指定路径是否存在且为一个文件
#islink() 指定路径是否存在且为一个符号链接
#ismount() 指定路径是否存在且为一个挂载点
#samefile() 两个路径名是否指向同个文件

import os
import os.path
root = 'root'
folder = 'archdotfiles'
filesArray = ['.bash_profile', '.bashrc', '.curlrc', '.fbtermrc', '.gemrc', '.gitconfig', '.npmrc', '.wgetrc', '.Xdefaults', '.xinitrc', '.xprofile' ,'.calcurse', '.emacs','.emacs.d','.vimrc','.vim','.w3m']

def link(source,target):
    if not os.path.isfile(target) and not os.path.isdir(target):
        print('--------------------------------')
        print('Making link of'+ source + ' to ' + target)
        print('--------------------------------')
        os.symlink(source,target)
    else:
        print(target + ' existes,quiting')

for item in filesArray:
    source = os.sep+root+os.sep+folder+os.sep+item
    target = os.sep+root+os.sep+item
    link(source,target)


